package SetTest;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Scanner;
import java.util.Set;

public class Main {

    public static void main(String[] args) {

	// write your code here
        // 用 Set 泛型接口创建对象 words
        // 来引用 HashSet 的实际对象
        Set<String> words = new HashSet<>();
        long totalTime = 0 ;

        // 尝试从系统获取输入
        try(Scanner in = new Scanner(System.in))
        {
            // 如果能够持续读系统输入，通过 iterator 的方法来
            // 进行遍历输入信息
            while (in.hasNext())
            {
                // 将每个遍历出的单词，存入到 word 中
                String word = in.next();
                // 删除标点符号
                word = word.replaceAll("\\p{P}","");
                //获取当前系统时间，用的是毫秒级别
                long callTime = System.currentTimeMillis();
                //将遍历出的单词，存入 hashset 集 words 中
                boolean isinerted = words.add(word);
                if(isinerted)
                {
                    System.out.println("插入新单词："+word);
                }
                // 计算出上面执行所用的实际时间间隔
                callTime = System.currentTimeMillis() - callTime;
                // 将单词操作集合的时间累加到全部时间中
                totalTime += callTime;
            }
        }

        // 创建了一个 Iterator
        // Iterator 不单可以从 List 对象中创建
        // 也可以从 set 对象中创建
        Iterator<String> iter = words.iterator();
        // 输出集中前 20 个单词
        for(int i=1;i<=20 && iter.hasNext();i++)
        {
            System.out.println(iter.next());
        }
        System.out.println(".......");
        System.out.println("书中共有"+words.size()+"个单词，操作集合，共花费"+totalTime+"毫秒");

        //System.out.println("test...");
    }
}
